from PublicReference.base import *

class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []
    data4 = []
    data5 = []
    data6 = []

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        if len(self.data4) >= self.等级 and len(self.data4) > 0:
            等效倍率 += self.data4[self.等级] * self.攻击次数5
        if len(self.data5) >= self.等级 and len(self.data5) > 0:
            等效倍率 += self.data5[self.等级] * self.攻击次数6
        if len(self.data6) >= self.等级 and len(self.data6) > 0:
            等效倍率 += self.data6[self.等级] * self.攻击次数7
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

    # def 等效CD(self, 武器类型, 输出类型):
    #     return round(self.CD / self.恢复, 1)



class 技能0(职业主动技能):
    名称 = '致命射击'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 1044.9
    # 成长 = 118.1
    data0 = [int(i*1.2719) for i in [0, 1163, 1281, 1399, 1517, 1635, 1753, 1872, 1990, 2108, 2226, 2344, 2462, 2580, 2698, 2816, 2934, 3052, 3170, 3288, 3406, 3524, 3642, 3760, 3878, 3997, 4115, 4233, 4351, 4469, 4587, 4705, 4823, 4941, 5059, 5177, 5295, 5413, 5531, 5649, 5767, 5885, 6003, 6121, 6240, 6358, 6476, 6594, 6712, 6830, 6948, 7066, 7184, 7302, 7420, 7538, 7656, 7774, 7892, 8010, 8128]]
    攻击次数 = 1
    CD = 6.9
    TP成长 = 0.1
    TP上限 = 7


class 技能1(被动技能):
    名称 = '左轮奥义'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        if self.等级 <= 10:
            return round(1.1 + 0.01 * self.等级, 5)
        else:
            return round(1.2 + 0.02 * (self.等级 - 10), 5)

    def 物理攻击力倍率(self, 武器类型):
        return self.加成倍率(武器类型)


class 技能2(被动技能):
    名称 = '花式枪术'
    所在等级 = 20
    等级上限 = 20
    基础等级 = 10

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            if self.等级 <= 10:
                return round(1 + 0.01 * self.等级, 5)
            else:
                return round(1.1 + 0.02 * (self.等级 - 10), 5)


class 技能3(职业主动技能):
    名称 = '三连发'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 基础 = 475.2
    # 成长 = 53.8
    data0 = [int(i*1.098) for i in [0, 529, 583, 637, 690, 744, 798, 852, 905, 959, 1013, 1067, 1120, 1174, 1228, 1282, 1335, 1389, 1443, 1497, 1550, 1604, 1658, 1712, 1765, 1819, 1873, 1926, 1980, 2034, 2088, 2141, 2195, 2249, 2303, 2356, 2410, 2464, 2518, 2571, 2625, 2679, 2733, 2786, 2840, 2894, 2948, 3001, 3055, 3109, 3163, 3216, 3270, 3324, 3378, 3431, 3485, 3539, 3592, 3646, 3700]]
    # 基础2 = 951.5
    # 成长2 = 107.5
    data1 = [int(i*1.098) for i in [0, 1059, 1166, 1274, 1381, 1489, 1596, 1704, 1811, 1919, 2026, 2134, 2241, 2349, 2456, 2564, 2671, 2779, 2886, 2994, 3101, 3209, 3316, 3424, 3531, 3639, 3746, 3853, 3961, 4068, 4176, 4283, 4391, 4498, 4606, 4713, 4821, 4928, 5036, 5143, 5251, 5358, 5466, 5573, 5681, 5788, 5896, 6003, 6111, 6218, 6326, 6433, 6541, 6648, 6756, 6863, 6970, 7078, 7185, 7293, 7400]]
    攻击次数2 = 2
    # 基础3 = 2380.3
    # 成长3 = 268.7
    data2 = [int(i*1.098) for i in [0, 2648, 2917, 3186, 3454, 3723, 3992, 4260, 4529, 4798, 5067, 5335, 5604, 5873, 6141, 6410, 6679, 6947, 7216, 7485, 7754, 8022, 8291, 8560, 8828, 9097, 9366, 9634, 9903, 10172, 10441, 10709, 10978, 11247, 11515, 11784, 12053, 12322, 12590, 12859, 13128, 13396, 13665, 13934, 14202, 14471, 14740, 15009, 15277, 15546, 15815, 16083, 16352, 16621, 16890, 17158, 17427, 17696, 17964, 18233, 18502]]
    攻击次数3 = 1
    CD = 8.0
    TP成长 = 0.1
    TP上限 = 7


class 技能4(主动技能):
    名称 = '致命回射'
    所在等级 = 30
    等级上限 = 1
    基础等级 = 1
    CD = 13.86


class 技能5(职业主动技能):
    名称 = '乱射'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 441.11
    # 成长 = 49.89
    data0 = [int(i*1.2382) for i in [0, 491, 541, 591, 641, 691, 740, 790, 840, 890, 940, 990, 1040, 1090, 1139, 1189, 1239, 1289, 1339, 1389, 1439, 1489, 1538, 1588, 1638, 1688, 1738, 1788, 1838, 1888, 1937, 1987, 2037, 2087, 2137, 2187, 2237, 2287, 2336, 2386, 2436, 2486, 2536, 2586, 2636, 2686, 2735, 2785, 2835, 2885, 2935, 2985, 3035, 3084, 3134, 3184, 3234, 3284, 3334, 3384, 3434, 3483, 3533, 3583, 3633, 3683, 3733, 3783, 3833, 3882, 3932]]
    攻击次数 = 20
    CD = 17.6
    TP成长 = 0.10
    TP上限 = 7
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.data0 = [int(x*1.14) for x in self.data0]
            # self.基础 *= 1.14
            # self.成长 *= 1.14
            self.攻击次数 = 22
        elif x == 1:
            self.data0 = [int(x*(1.14+0.08)) for x in self.data0]
            # self.基础 *= 1.14 + 0.08
            # self.成长 *= 1.14 + 0.08
            self.攻击次数 = 22


class 技能6(职业主动技能):
    名称 = '移动射击'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 404.3
    # 成长 = 45.7
    data0 = [int(i*1.2267) for i in [0, 450, 496, 542, 588, 633, 679, 725, 770, 816, 862, 908, 953, 999, 1045, 1091, 1136, 1182, 1228, 1274, 1319, 1365, 1411, 1456, 1502, 1548, 1594, 1639, 1685, 1731, 1777, 1822, 1868, 1914, 1960, 2005, 2051, 2097, 2142, 2188, 2234, 2280, 2325, 2371, 2417, 2463, 2508, 2554, 2600, 2646, 2691, 2737, 2783, 2829, 2874, 2920, 2966, 3011, 3057, 3103, 3149]]
    攻击次数 = 30
    CD = 24.3
    TP成长 = 0.10
    TP上限 = 7


class 技能7(职业主动技能):
    名称 = '多重射击'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 基础 = 1998.3
    # 成长 = 225.7
    data0 = [int(i*1.2028) for i in [0, 2224, 2450, 2675, 2902, 3127, 3352, 3578, 3804, 4030, 4255, 4481, 4706, 4933, 5158, 5384, 5609, 5836, 6061, 6287, 6512, 6738, 6964, 7189, 7415, 7640, 7867, 8092, 8318, 8543, 8770, 8995, 9221, 9446, 9673, 9898, 10124, 10349, 10574, 10801, 11026, 11252, 11477, 11704, 11929, 12155, 12380, 12607, 12832, 13058, 13283, 13510, 13735, 13960, 14186, 14411, 14638, 14863, 15089, 15314, 15541]]
    攻击次数 = 5
    CD = 19.8
    TP成长 = 0.10
    TP上限 = 7
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.data0=[int(x*6.1) for x in self.data0]
            # self.基础 *= 6.1
            # self.成长 *= 6.1
            self.攻击次数 = 1
        elif x == 1:
            self.data0=[int(x*(6.1+0.45)) for x in self.data0]
            # self.基础 *= 6.1 + 0.45
            # self.成长 *= 6.1 + 0.45
            self.攻击次数 = 1


class 技能8(职业主动技能):
    名称 = '双鹰回旋'
    备注 = '(20/24/37 & 34/54)'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 基础 = 460.85
    # 成长 = 52.15
    # 基础2 = 531
    # 成长2 = 53.9
    # 基础3 = 558
    # 成长3 = 56.6
    data0 = [int(i*1.00) for i in [0, 513, 565, 618, 670, 722, 774, 826, 878, 930, 982, 1035, 1087, 1139, 1191, 1243, 1295, 1347, 1399, 1452, 1504, 1556, 1608, 1660, 1712, 1764, 1816, 1869, 1921, 1973, 2025, 2077, 2129, 2181, 2233, 2286, 2338, 2390, 2442, 2494, 2546, 2598, 2651, 2703, 2755, 2807, 2859, 2911, 2963, 3015, 3068, 3120, 3172, 3224, 3276, 3328, 3380, 3432, 3485, 3537, 3589, 3641, 3693, 3745, 3797, 3849, 3902, 3954, 4006, 4058, 4110]]
    data1 = [int(i*1.00) for i in [0, 531, 585, 639, 693, 747, 800, 854, 908, 962, 1016, 1070, 1124, 1178, 1232, 1286, 1340, 1393, 1447, 1501, 1555, 1609, 1663, 1717, 1771, 1825, 1879, 1933, 1986, 2040, 2094, 2148, 2202, 2256, 2310, 2364, 2418, 2472, 2526, 2579, 2633, 2687, 2741, 2795, 2849, 2903, 2957, 3011, 3065, 3119, 3172, 3226, 3280, 3334, 3388, 3442, 3496, 3550, 3604, 3658, 3712, 3765, 3819, 3873, 3927, 3981, 4035, 4089, 4143, 4197, 4251]]
    data2 = [int(i*1.00) for i in [0, 558, 614, 671, 728, 784, 841, 898, 954, 1011, 1067, 1124, 1181, 1237, 1294, 1351, 1407, 1464, 1520, 1577, 1634, 1690, 1747, 1804, 1860, 1917, 1974, 2030, 2087, 2143, 2200, 2257, 2313, 2370, 2427, 2483, 2540, 2596, 2653, 2710, 2766, 2823, 2880, 2936, 2993, 3050, 3106, 3163, 3219, 3276, 3333, 3389, 3446, 3503, 3559, 3616, 3672, 3729, 3786, 3842, 3899, 3956, 4012, 4069, 4126, 4182, 4239, 4295, 4352, 4409, 4465]]
    攻击次数 = 16
    攻击次数2 = 18
    攻击次数3 = 29
    攻击间隔 = 1
    CD = 44.6
    TP成长 = 0.05
    TP基础 = 5
    TP上限 = 7
    是否有护石 = 1

    def 等效百分比(self, 武器类型):
        self.攻击次数 = int((self.攻击次数 + (4 / 5) * self.TP等级) / self.攻击间隔)
        self.攻击次数2 = int((self.攻击次数2 + (6 / 5) * self.TP等级) / self.攻击间隔)
        self.攻击次数3 = int((self.攻击次数3 + (8 / 5) * self.TP等级) / self.攻击间隔)

        return super().等效百分比(武器类型)
        # if self.等级 == 0:
        #     return 0
        # else:
        #     return int((攻击次数 * (self.基础 + self.成长 * self.等级) + 攻击次数2 * (
        #         self.基础2 + self.成长2 * self.等级) + 攻击次数3 * (
        #         self.基础3 + self.成长3 * self.等级)) * (1 + self.TP成长 * self.TP等级) * self.倍率)

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.09  # COLG百科
            #self.攻击间隔 = 0.7
            #self.攻击次数 = 0
            #self.基础2 *= 1.08
            #self.成长2 *= 1.08
        elif x == 1:
            self.倍率 *= 1.09 + 0.07  # COLG百科
            #self.攻击间隔 = 0.7
            #self.攻击次数 = 0
            #self.基础2 *= 1.08
            #self.成长2 *= 1.08


class 技能9(被动技能):
    名称 = '死亡印记'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.065 + 0.02 * self.等级, 5)


class 技能10(职业主动技能):
    名称 = '疯狂屠戮'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 12
    # 基础 = 456.4
    # 成长 = 155.3
    # 基础2 = 422.6
    # 成长2 = 127.7
    # 基础3 = 787.2
    # 成长3 = 214.4
    data0 = [int(i*1.2292) for i in [0, 551, 678, 805, 934, 1061, 1189, 1317, 1445, 1572, 1700, 1828, 1955, 2084, 2211, 2339, 2467, 2594, 2722, 2850, 2978, 3105, 3233, 3361, 3488, 3617, 3744, 3872, 4000, 4127, 4255, 4383, 4511, 4638, 4766, 4894, 5021, 5150, 5277, 5405, 5533]]
    攻击次数 = 70
    #    data1 = [0, 0, 39, 155, 194, 233, 272, 310, 349, 388, 427, 466, 504, 543, 582, 621, 660, 698, 737, 776, 815, 854, 892, 931, 970, 1009, 1047, 1086, 1125, 1164, 1203, 1241, 1280, 1319, 1358, 1397, 1435, 1474, 1513, 1552, 1591]
    #    data2 = [0, 20, 20, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25]
    #    data3 = [0, 30, 30, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35]
    data1 = [int(i*1.2292) for i in [0, 969, 1194, 1418, 1643, 1868, 2093, 2317, 2542, 2767, 2992, 3216, 3441, 3666, 3891, 4115, 4340, 4565, 4790, 5015, 5239, 5464, 5689, 5914, 6138, 6363, 6588, 6813, 7037, 7262, 7487, 7712, 7936, 8161, 8386, 8611, 8836, 9060, 9285, 9510, 9735]]
    攻击次数2 = 25
    #    data5 = [0, -400, -374, -348, -322, -297, -193, -167, -141, -116, -90, -64, -38, -12, 14, 40, 65, 91, 117, 143, 169, 195, 220, 246, 272, 298, 324, 350, 376, 401, 427, 453, 479, 505, 531, 557, 582, 608, 634, 660, 686]
    #    data6 = [0, 14, 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18]
    #    data7 = [0, 21, 21, 21, 21, 21, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25]
    data2 = [int(i*1.2292) for i in [0, 669, 824, 980, 1135, 1290, 1445, 1601, 1756, 1911, 2066, 2222, 2377, 2532, 2687, 2843, 2998, 3153, 3308, 3464, 3619, 3774, 3929, 4085, 4240, 4395, 4550, 4706, 4861, 5016, 5171, 5327, 5482, 5637, 5792, 5948, 6103, 6258, 6414, 6569, 6724]]
    攻击次数3 = 3
    # 攻击次数 = 3
    # 攻击次数2 = 70
    # 攻击次数3 = 25
    CD = 145


class 技能11(职业主动技能):
    名称 = '死亡突袭'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 23
    # 基础 = 6046.3
    # 成长 = 682.7
    data0 = [int(i*1.2170) for i in [0, 6729, 7412, 8095, 8778, 9460, 10143, 10826, 11508, 12191, 12874, 13557, 14239, 14922, 15605, 16288, 16970, 17653, 18336, 19019, 19701, 20384, 21067, 21749, 22432, 23115, 23798, 24480, 25163, 25846, 26529, 27211, 27894, 28577, 29260, 29942, 30625, 31308, 31991, 32673, 33356]]
    攻击次数 = 3
    CD = 30.0
    TP成长 = 0.10
    TP上限 = 7
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.22
            self.CD *= 0.90
        elif x == 1:
            self.倍率 *= 1.22 + 0.09
            self.CD *= 0.90


class 技能12(职业主动技能):
    名称 = '压制射击'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    # 基础 = 1378.5
    # 成长 = 155.5
    # 基础2 = 3061.2
    # 成长2 = 345.8
    data0 = [int(i*1.2094) for i in [0, 1533, 1689, 1844, 2000, 2155, 2311, 2467, 2622, 2778, 2933, 3089, 3244, 3400, 3556, 3711, 3867, 4022, 4178, 4334, 4489, 4645, 4800, 4956, 5111, 5267, 5423, 5578, 5734, 5889, 6045, 6201, 6356, 6512, 6667, 6823, 6978, 7134, 7290, 7445, 7601]]
    data1 = [int(i*1.2094) for i in [0, 3407, 3753, 4099, 4445, 4790, 5136, 5482, 5828, 6173, 6519, 6865, 7211, 7556, 7902, 8248, 8594, 8939, 9285, 9631, 9976, 10322, 10668, 11014, 11359, 11705, 12051, 12397, 12742, 13088, 13434, 13780, 14125, 14471, 14817, 15163, 15508, 15854, 16200, 16545, 16891]]
    攻击次数 = 20
    攻击次数2 = 1
    CD = 50.0
    TP成长 = 0.10
    TP上限 = 7
    是否有护石 = 1

    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 24
            self.data1 =[int(x*1.52) for x in self.data1]
            # self.基础2 *= 1.52
            # self.成长2 *= 1.52
        elif x == 1:
            self.攻击次数 = 24
            self.data1 =[int(x*(1.52+0.9)) for x in self.data1]
            # self.基础2 *= 1.52 + 0.9
            # self.成长2 *= 1.52 + 0.9


class 技能13(被动技能):
    名称 = '射击掌握'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11
    关联技能2 = ['致命射击']
    冷却关联技能 = ['致命回射']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)

    def 加成倍率2(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round((1.305 + 0.045 * self.等级)/(1.22 + 0.02 * self.等级), 5)

    def CD缩减倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1 - 0.235 - 0.015 * self.等级, 3)

class 技能14(职业主动技能):
    名称 = '疾风骤雨'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 16
    data0 = [int(i*1.2440) for i in [0, 2312, 2547, 2781, 3016, 3250, 3485, 3720, 3954, 4189, 4423, 4658, 4893, 5127, 5362, 5596, 5831, 6066, 6300, 6535, 6769, 7004, 7239, 7473, 7708, 7942, 8177, 8412, 8646, 8881, 9115, 9350, 9585, 9819, 10054, 10289, 10523, 10758, 10992, 11227, 11462]]
    # 基础 = 2059.4/1.126*1.136
    # 成长 = 232.6/1.126*1.136
    攻击次数 = 24
    CD = 40.0
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.36275


class 技能15(职业主动技能):
    名称 = '抹杀'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    # 基础 = 6679.7
    # 成长 = 754.3
    data0 = [int(i*1.2529) for i in [0, 7434, 8188, 8942, 9697, 10451, 11205, 11959, 12713, 13468, 14222, 14976, 15730, 16485, 17239, 17993, 18747, 19501, 20256, 21010, 21764, 22518, 23272, 24027, 24781, 25535, 26289, 27044, 27798, 28552, 29306, 30060, 30815, 31569, 32323, 33077, 33831, 34586, 35340, 36094, 36848]]
    攻击次数 = 7
    CD = 45.0
    是否有护石 = 1

    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.3338


class 技能16(职业主动技能):
    名称 = '第七翼动'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    # 基础 = 5112.2
    # 成长 = 1543.8
    # 基础2 = 28489.4
    # 成长2 = 8600.6
    data0 = [int(i*1.25) for i in [0, 6657, 8200, 9744, 11288, 12832, 14375, 15919, 17463, 19006, 20550, 22094, 23637, 25181, 26725, 28269, 29812, 31356, 32900, 34443, 35987, 37531, 39074, 40618, 42162, 43706, 45249, 46793, 48337, 49880, 51424, 52968, 54511, 56055, 57599, 59143, 60686, 62230, 63774, 65317, 66861]]
    data1 = [int(i*1.25) for i in [0, 37090, 45690, 54291, 62892, 71492, 80093, 88693, 97294, 105895, 114495, 123096, 131697, 140297, 148898, 157498, 166099, 174700, 183300, 191901, 200501, 209102, 217703, 226303, 234904, 243505, 252105, 260706, 269306, 277907, 286508, 295108, 303709, 312310, 320910, 329511, 338111, 346712, 355313, 363913, 372514]]
    攻击次数 = 13
    攻击次数2 = 1
    CD = 180


class 技能17(被动技能):
    名称 = '卓尔不群'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能18(职业主动技能):
    名称 = '爆燃突击'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    # 基础 = 9325.5
    # 成长 = 1053.5
    # 基础2 = 37304.4
    # 成长2 = 4212.2
    data0 = [int(i*1.2150) for i in [0, 10379, 11432, 12486, 13539, 14592, 15645, 16698, 17751, 18804, 19857, 20910, 21963, 23016, 24069, 25122, 26175, 27228, 28281, 29334, 30387, 31440, 32493, 33546, 34599, 35652, 36705, 37758, 38811, 39865, 40918, 41971, 43024, 44077, 45130, 46183, 47236, 48289, 49342, 50395, 51448]]
    data1 = [int(i*1.2150) for i in [0, 41519, 45731, 49944, 54156, 58368, 62580, 66792, 71004, 75217, 79429, 83641, 87853, 92065, 96277, 100489, 104702, 108914, 113126, 117338, 121550, 125762, 129975, 134187, 138399, 142611, 146823, 151035, 155247, 159460, 163672, 167884, 172096, 176308, 180520, 184733, 188945, 193157, 197369, 201581, 205793]]
    攻击次数 = 6
    攻击次数2 = 1
    CD = 60


class 技能19(职业主动技能):
    名称 = '鹰眸·致命危机'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    # 基础 = 271532
    # 成长 = 81964
    data0 = [int(i*1.2047) for i in [0, 2062, 2540, 3018, 3497, 3975, 4453, 4931, 5409, 5887, 6366, 6844, 7322, 7800, 8278, 8757, 9235, 9713, 10191, 10669, 11147, 11626, 12104, 12582, 13060, 13538, 14016, 14495, 14973, 15451, 15929, 16407, 16885, 17364, 17842, 18320, 18798, 19276, 19754, 20233, 20711]]
    攻击次数 = 60
    data1 = [int(i*1.2047) for i in [0, 10605, 13064, 15523, 17983, 20442, 22901, 25360, 27819, 30278, 32738, 35197, 37656, 40115, 42574, 45033, 47493, 49952, 52411, 54870, 57329, 59788, 62248, 64707, 67166, 69625, 72084, 74543, 77003, 79462, 81921, 84380, 86839, 89298, 91758, 94217, 96676, 99135, 101594, 104053, 106513]]
    攻击次数2 = 6
    data2 = [int(i*1.2047) for i in [0, 10605, 13064, 15523, 17983, 20442, 22901, 25360, 27819, 30278, 32738, 35197, 37656, 40115, 42574, 45033, 47493, 49952, 52411, 54870, 57329, 59788, 62248, 64707, 67166, 69625, 72084, 74543, 77003, 79462, 81921, 84380, 86839, 89298, 91758, 94217, 96676, 99135, 101594, 104053, 106513]]
    攻击次数3 = 4
    data3 = [int(i*1.2047) for i in [0, 35350, 43548, 51745, 59942, 68139, 76337, 84534, 92731, 100928, 109125, 117323, 125520, 133717, 141914, 150112, 158309, 166506, 174703, 182900, 191098, 199295, 207492, 215689, 223886, 232084, 240281, 248478, 256675, 264873, 273070, 281267, 289464, 297661, 305859, 314056, 322253, 330450, 338647, 346845, 355042]]
    攻击次数4 = 1
    data4 = [int(i*1.2047) for i in [0, 53026, 65322, 77617, 89913, 102209, 114505, 126801, 139096, 151392, 163688, 175984, 188280, 200576, 212871, 225167, 237463, 249759, 262055, 274350, 286646, 298942, 311238, 323534, 335830, 348125, 360421, 372717, 385013, 397309, 409605, 421900, 434196, 446492, 458788, 471084, 483380, 495675, 507971, 520267, 532563]]
    攻击次数5 = 1
    data5 = [int(i*1.2047) for i in [0, 3535, 4355, 5174, 5994, 6814, 7634, 8453, 9273, 10093, 10913, 11732, 12552, 13372, 14191, 15011, 15831, 16651, 17470, 18290, 19110, 19929, 20749, 21569, 22389, 23208, 24028, 24848, 25668, 26487, 27307, 28127, 28946, 29766, 30586, 31406, 32225, 33045, 33865, 34684, 35504]]
    攻击次数6 = 10

    CD = 290

    def 加成倍率(self, 武器类型):
        return 0.0


class 技能20(职业主动技能):
    名称 = '烟尘弹'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    data0 = [int(i*1.00) for i in [0, 381, 420, 458, 497, 536, 574, 613, 651, 690, 729, 767, 806, 845, 883, 922, 961, 999, 1038, 1077, 1115, 1154, 1193, 1231, 1270, 1308, 1347, 1386, 1424, 1463, 1502, 1540, 1579, 1618, 1656, 1695, 1734, 1772, 1811, 1850, 1888, 1927, 1965, 2004, 2043, 2081, 2120, 2159, 2197, 2236, 2275, 2313, 2352, 2391, 2429, 2468, 2506, 2545, 2584, 2622, 2661]]
    攻击次数 = 6
    CD = 6
    TP成长 = 0.08
    TP上限 = 7


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能'+str(i)+'())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i

重霄·漫游枪手·男一觉序号 = 0
重霄·漫游枪手·男二觉序号 = 0
重霄·漫游枪手·男三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 50:
        重霄·漫游枪手·男一觉序号 = 技能序号[i.名称]
    if i.所在等级 == 85:
        重霄·漫游枪手·男二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        重霄·漫游枪手·男三觉序号 = 技能序号[i.名称]

重霄·漫游枪手·男护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        重霄·漫游枪手·男护石选项.append(i.名称)

重霄·漫游枪手·男符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.所在等级 != 50 and i.是否有伤害 == 1:
        重霄·漫游枪手·男符文选项.append(i.名称)


class 重霄·漫游枪手·男角色属性(角色属性):

    实际名称 = '重霄·漫游枪手·男'
    角色 = '神枪手(男)'
    职业 = '漫游枪手'

    武器选项 = ['左轮枪']

    类型选择 = ['物理百分比']

    # 默认
    类型 = '物理百分比'
    防具类型 = '皮甲'
    防具精通属性 = ['力量']

    主BUFF = 2.25

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):
        super().被动倍率计算()
        self.技能栏[self.技能序号['致命回射']].基础 = self.技能栏[self.技能序号['致命射击']].等效百分比(
            self.武器类型)*1.5
        self.技能栏[self.技能序号['致命回射']].被动倍率 = self.技能栏[self.技能序号['致命射击']].被动倍率


class 重霄·漫游枪手·男(角色窗口):
    def 窗口属性输入(self):
        self.初始属性 = 重霄·漫游枪手·男角色属性()
        self.角色属性A = 重霄·漫游枪手·男角色属性()
        self.角色属性B = 重霄·漫游枪手·男角色属性()
        self.一觉序号 = 重霄·漫游枪手·男一觉序号
        self.二觉序号 = 重霄·漫游枪手·男二觉序号
        self.三觉序号 = 重霄·漫游枪手·男三觉序号
        self.护石选项 = deepcopy(重霄·漫游枪手·男护石选项)
        self.符文选项 = deepcopy(重霄·漫游枪手·男符文选项)
